// quando carregar vai chamar o metamask
window.addEventListener('load', async (event) => {

    var contaUsuario
    var msg
    var statusConexao = document.getElementById("statusConexao")
    var qtdConta = document.getElementById("qtdConta")
    // Navegadores com novo Metamask    
    if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
            // Solicita acesso a carteira Ethereum se necessário
            await ethereum.enable()
            console.log("Usando nova versão");
            // Contas agora estão expostas                  
        } catch (error) { // Usuário ainda não deu permissão para acessar a carteira Ethereum        
            alert('Por favor, dê permissão para acessarmos a sua carteira Ethereum.');
            statusConexao.innerHTML = 'Desconectado';
        }
    } else if (window.web3) { // Navegadores DApp antigos
        window.web3 = new Web3(web3.currentProvider)
    } else { // 
        alert('Para utilizar os nossos serviços você precisa instalar o Metamask. Por favor, visite: metamask.io');
    }

    obtemNomeEmpresa()
    verificaConta()
    getCarteira()

    // chama funçao abaixo de verificar conta.


    // Verifica a conexão Web3 e a conta do usuario
    function verificaConta() {
        var statusConexao = document.getElementById("statusConexao");
        // Verifica o status da conexão 
        if (web3 && web3.isConnected()) {
            if (web3.eth.accounts[0] == undefined) {
                console.info('Não esta conectado ao Metamask');
                statusConexao.innerHTML = "Desconectado";
            } else {
                console.info('Conectado. Qual versão da lib Web3 foi injetado pelo Metamask? ' + web3.version.api);
                contaUsuario = web3.eth.accounts[0];

                msg = `Conectado a conta: ${contaUsuario} <br>`
                statusConexao.innerHTML = msg
            }
        } else {
            statusConexao.innerHTML = 'Desconectado';
        }
    }

    // web3.eth.getBalance
    // https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgetbalance
    function getCarteira() {

        const res = web3.eth.getBalance(contaUsuario, function (error, result) {
            if (!error) {
                balance = result.c[0]
                //console.log(balance)
                qtdConta.innerHTML = `Balanço da conta é de : ${balance} <br>`
            } else
                console.error(error)
        })

    }


    function obtemNomeEmpresa() {
        contratoUsoDeImagem.nomeEmpresa({ from: contaUsuario, gas: 3000000, value: 0 }, function (err, resultado) {
            if (err) {
                console.log("Erro");
                console.error(err);
            } else {
                console.log("Resultado");
                let objStatus = document.getElementById("spanNomeEmpresa");
                console.log(resultado);
                objStatus.innerText = resultado;
            }
        });
    }

});


